package DAO;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

import DTO.DTO_InformeReposicion;
import DTO.DTO_Mesa;
import DTO.DTO_MesaSimple;
import Entities.Entity_InformeReposicion;
import Entities.Entity_Mesa;
import Hibernate.HibernateUtil;

public class DAO_InformeReposicion {
		
		private static DAO_InformeReposicion instancia = null;
		private static SessionFactory sf = null;

		public static DAO_InformeReposicion getInstancia(){
			if(instancia == null){
				sf = HibernateUtil.getSessionFactory();
				instancia = new DAO_InformeReposicion();
			} 
			return instancia;
		}
		
		public List<DTO_InformeReposicion> getInformeReposicion(){
			Session session = sf.openSession();
			String consulta = "select i from Entity_InformeReposicion i";
			Query q = session.createQuery(consulta);
			List<Entity_InformeReposicion> informes = q.list();
			List<DTO_InformeReposicion> informesDTO = new ArrayList<DTO_InformeReposicion>();
			for(Entity_InformeReposicion i: informes){
				DTO_InformeReposicion in = new DTO_InformeReposicion();
				/*
				 * Convertir la mesa entity a mesa dto para devolver el array de dtos
				 */
				informesDTO.add(in);
			}
						
			return informesDTO;
		}
		
		public void updateInforme(DTO_InformeReposicion mesa){
			Entity_InformeReposicion aux = new Entity_InformeReposicion();
			/*
			 * convierto la mesa dto que me pasaron por parametro a la entity
			*/
			/*Abro sesion y grabo el objeto*/
			Session session = sf.openSession();
			session.beginTransaction();
			session.persist(aux);
			session.flush();
			session.getTransaction().commit();
			session.close();
		}
		

		
	
}
